home *** CD-ROM | disk | FTP | other *** search
- //***********************************************************************
- //
- // CtlDemo3.cpp
- //
- //***********************************************************************
-
- #include <afxwin.h>
- #include <afxext.h>
- #include "Resource.h"
- #include "CtlDemo3.h"
-
- CMyApp myApp;
-
- /////////////////////////////////////////////////////////////////////////
- // CMyApp member functions
-
- BOOL CMyApp::InitInstance ()
- {
- m_pMainWnd = new CMainWindow;
- m_pMainWnd->ShowWindow (m_nCmdShow);
- m_pMainWnd->UpdateWindow ();
- return TRUE;
- }
-
- /////////////////////////////////////////////////////////////////////////
- // CMainWindow message map and member functions
-
- BEGIN_MESSAGE_MAP (CMainWindow, CFrameWnd)
- ON_WM_CREATE ()
- ON_WM_DESTROY ()
- ON_COMMAND (IDM_OPTIONS_DISABLE, OnOptionsDisable)
- ON_COMMAND (IDM_OPTIONS_EXIT, OnOptionsExit)
- ON_UPDATE_COMMAND_UI (IDM_OPTIONS_DISABLE, OnUpdateOptionsDisableUI)
- END_MESSAGE_MAP ()
-
- CMainWindow::CMainWindow ()
- {
- CString strWndClass = AfxRegisterWndClass (
- 0,
- myApp.LoadStandardCursor (IDC_ARROW),
- (HBRUSH) (COLOR_3DFACE + 1),
- myApp.LoadStandardIcon (IDI_APPLICATION)
- );
-
- Create (strWndClass, "CtlDemo3", WS_OVERLAPPEDWINDOW,
- rectDefault, NULL, MAKEINTRESOURCE (IDR_MAINFRAME));
- }
-
- int CMainWindow::OnCreate (LPCREATESTRUCT lpcs)
- {
- if (CFrameWnd::OnCreate (lpcs) == -1)
- return -1;
-
- m_ctlButton1.Create ("Check", WS_CHILD | WS_VISIBLE | BS_OWNERDRAW,
- CRect (16, 16, 88, 56), this, IDC_BUTTON1);
- m_ctlButton1.LoadBitmaps ("CheckU", "CheckD", "CheckF", "CheckX");
-
- m_hBitmap = ::LoadBitmap (AfxGetInstanceHandle (), "Check");
- m_ctlButton2.Create ("", WS_CHILD | WS_VISIBLE | BS_BITMAP,
- CRect (120, 16, 192, 56), this, IDC_BUTTON2);
- m_ctlButton2.SetBitmap (m_hBitmap);
-
- m_ctlButton3.Create ("", WS_CHILD | WS_VISIBLE | BS_ICON,
- CRect (224, 16, 296, 56), this, IDC_BUTTON3);
- m_ctlButton3.SetIcon (myApp.LoadIcon ("Check"));
-
- m_ctlLabel1.Create ("CBitmapButton", WS_CHILD | WS_VISIBLE |
- SS_CENTER, CRect (8, 72, 96, 100), this);
-
- m_ctlLabel2.Create ("BS_BITMAP", WS_CHILD | WS_VISIBLE | SS_CENTER,
- CRect (112, 72, 200, 100), this);
-
- m_ctlLabel3.Create ("BS_ICON", WS_CHILD | WS_VISIBLE | SS_CENTER,
- CRect (216, 72, 304, 100), this);
-
- CClientDC dc (this);
- int nHeight = -((dc.GetDeviceCaps (LOGPIXELSY) * 8) / 72);
-
- m_font.CreateFont (nHeight, 0, 0, 0, FW_NORMAL, 0, 0, 0,
- DEFAULT_CHARSET, OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS,
- DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "MS Sans Serif");
-
- m_ctlLabel1.SetFont (&m_font, FALSE);
- m_ctlLabel2.SetFont (&m_font, FALSE);
- m_ctlLabel3.SetFont (&m_font, FALSE);
- return 0;
- }
-
- void CMainWindow::OnDestroy ()
- {
- ::DeleteObject (m_hBitmap);
- }
-
- void CMainWindow::OnOptionsExit ()
- {
- SendMessage (WM_CLOSE, 0, 0);
- }
-
- void CMainWindow::OnOptionsDisable ()
- {
- if (m_ctlButton1.IsWindowEnabled ()) {
- m_ctlButton1.EnableWindow (FALSE);
- m_ctlButton2.EnableWindow (FALSE);
- m_ctlButton3.EnableWindow (FALSE);
- }
- else {
- m_ctlButton1.EnableWindow (TRUE);
- m_ctlButton2.EnableWindow (TRUE);
- m_ctlButton3.EnableWindow (TRUE);
- }
- }
-
- void CMainWindow::OnUpdateOptionsDisableUI (CCmdUI* pCmdUI)
- {
- pCmdUI->SetText (m_ctlButton1.IsWindowEnabled () ?
- "&Disable Buttons" : "&Enable Buttons");
- }
-